2024 - November/December
The cover story by Jason Murphy explores the fascinating intersection of AI and game development, detailing the recreation of the classic Asteroids game using ChatGPT-4. Complementing this, Sahil Malik's article delves into offline AI applications, emphasizing data privacy and security. This issue also features in-depth technical content, including Paul Sheriff's exploration of .NET MAUI data entry controls and binding, and Joydip's comprehensive guide to threading and concurrency in C#. Ashleigh Lodge contributes a thought-provoking piece on web accessibility, challenging common assumptions about ARIA usage.
-
Creative versus Receptive
Melanie looks at whether creating something completely new is scary, exciting, and worth doing, or whether you’re working on just another flash in the pan.
-
CODE: Five Years Ago
Markus finishes up his series on the last 30 years with a look at the most recent changes in computing and what’s been happening with the business of CODE.
-
AI with No Internet Connection
Sahil discusses the challenges and potential of developing AI applications that function offline, emphasizing privacy and data security. He explores building a local application capable of answering questions from any source without cloud dependency, using tools like Ollama and LangChain to run large language models locally while keeping your data under your local control. Malik provides a practical guide to leveraging existing models for specific tasks, highlighting the benefits of local AI processing.
-
Exploring .NET MAUI: Data Entry Controls and Data Binding
In this third entry in a series on MAUI, Paul Sheriff looks into advanced data entry controls and the intricacies of data binding. You'll understand these details through implementing various controls such as Switch, RadioButton, DatePicker, and more, illustrating their usage in creating dynamic, responsive interfaces. Sheriff emphasizes the importance of data binding for seamless UI updates, introducing strategies like the PropertyChanged event and value converters. The article also covers creating a base class for entity classes and binding class properties to UI controls, setting the stage for a future article on MVVM and dependency injection.
-
First Rule of ARIA: Don’t Use ARIA
As an accessibility tool, ARIA (Accessible Rich Internet Applications) can be mystifying. Ashleigh emphasizes the importance of prioritizing native HTML elements for web accessibility before resorting to ARIA. She explains that ARIA should act as a last resort, filling gaps in HTML semantics only when necessary, and highlights ARIA's complexity and potential for misuse. The article outlines foundational ARIA concepts—role, relationship, and state—while stressing the importance of testing and validating ARIA implementation. Lodge cites studies showing ARIA's frequent misapplication, advocating for thoughtful, minimal use to maintain web accessibility integrity.
-
Can an LLM Make a Video Game?
Jason explores the potential of using a Large Language Model (LLM), specifically ChatGPT-4, to recreate the classic arcade game Asteroids in Python, without direct coding. He documents his journey from initial prompts to the LLM, through iterative development, addressing errors and inefficiencies, to the final product—a functional but rudimentary game. The experiment highlights the LLM's capabilities and limitations in game development, emphasizing the importance of precise prompting and showcasing the evolving role of AI in coding and creative processes. Jason also provides access to the full chat thread.
-
Threads, Asynchrony, Parallelism, and Concurrency in C#
Joydip walks you through fundamental computing concepts that enhance application performance and scalability. The article provides a comprehensive exploration of threads, tasks, and multiprocessing, illustrating how they relate to asynchrony, parallelism, and concurrency. Through detailed explanations and code examples, Kanjilal demonstrates how these concepts can be implemented in C# using Visual Studio 2022 and .NET 9.0. Emphasizing best practices, Joydip guides developers in avoiding common pitfalls like deadlocks and race conditions, while highlighting when to use each approach based on application needs.